package zjw.params;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class ParamsMp  implements Params {
	public static void main(String[] args) {
		test("enterp_business","enterpBusiness");
	}
	
public static void test(String tableName,String entityName ){
	   AutoGenerator mpg = new AutoGenerator();
	  final String codepath="..\\myspringboottest\\src\\main\\java";
  // 全局配置
	        GlobalConfig gc = new GlobalConfig();	       
	        gc.setOutputDir(codepath);
	        gc.setFileOverride(true);
	        gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false
	        gc.setEnableCache(false);// XML 二级缓存
	        gc.setBaseResultMap(true);// XML ResultMap
	        gc.setBaseColumnList(false);// XML columList
	        // 自定义文件命名，注意 %s 会自动填充表实体属性！
	         gc.setMapperName("%sMapper");
	         gc.setXmlName("%sParams");
	         gc.setServiceName("Params");
	        // gc.setServiceImplName("%sServiceDiy");
	        // gc.setControllerName("%sAction");
	        mpg.setGlobalConfig(gc);

	        // 数据源配置
	        DataSourceConfig dsc = new DataSourceConfig();
	        dsc.setDbType(DbType.MYSQL);
	        dsc.setTypeConvert(new MySqlTypeConvert(){
	            // 自定义数据库表字段类型转换【可选】
	            @Override
	            public DbColumnType processTypeConvert(String fieldType) {
	                System.out.println("转换类型：" + fieldType);
	        // 注意！！processTypeConvert 存在默认类型转换，如果不是你要的效果请自定义返回、非如下直接返回。
	                return super.processTypeConvert(fieldType);
	            }
	        });
	        dsc.setDriverName("com.mysql.jdbc.Driver");
	        dsc.setUsername("auslese");
	        dsc.setPassword("nova_Auslese_123");
	        dsc.setUrl("jdbc:mysql://rm-2ze370pa1y7zi3u33vo.mysql.rds.aliyuncs.com:3306/auslese?characterEncoding=utf8");
	        mpg.setDataSource(dsc);

	        // 策略配置
	        StrategyConfig strategy = new StrategyConfig();
	    // strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意
	   //     strategy.setTablePrefix(new String[] { "tlog_", "app" });// 此处可以修改为您的表前缀
	        strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
	         strategy.setInclude(new String[] {tableName }); // 需要生成的表
	   
	        mpg.setStrategy(strategy);

	        // 包配置
	        PackageConfig pc = new PackageConfig();
	        pc.setParent("");
	     
	        pc.setService("zjw.params");
	        mpg.setPackageInfo(pc);
	        TemplateConfig tc = new TemplateConfig(); 
	       
	        tc.setXml(null);//不生成本来的,生成自定义的	  
	      tc.setController(null);
	        tc.setMapper(null);
	        tc.setEntity(null);
	        tc.setService("/templates/params.java");
	         tc.setServiceImpl(null);
	        // 如上任何一个模块如果设置 空 OR Null 将不生成该模块。
	         mpg.setTemplate(tc);
	        // 执行生成
	        mpg.execute();

	        // 打印注入设置【可无】
	      //  System.err.println(mpg.getCfg().getMap().get("abc"));
	    }
public static String captureName(String name) {
	name = name.substring(0, 1).toUpperCase() + name.substring(1);
	return name;

}
//  mpg.setTemplateEngine(new MyFreemarkerTemplateEngine());

}

